// types/indication.ts

/**
 * 分页查询基础参数
 */
export interface PageQuery {
  pageNum: number; // 当前页码
  pageSize: number; // 每页条目数
}

/**
 * 表格分页查询请求参数
 */
export interface TableDataPageQuery extends PageQuery {
  keyword?: string; // 搜索关键词
}

/**
 * 分页查询响应数据
 */
export interface PageResult<T> {
  total: number; // 总条目数
  records: T[]; // 当前页的数据列表
}

/**
 * 指标表格数据
 */
export interface IndicationTable {
  id: number; // 指标ID
  name: string; // 指标名称
  domain: string; // 所属指标域
  creator: string; // 创建人
  createTime: string; // 创建时间
}

// src/api/indicationManage/index.ts
import request from "@/utils/request";

const DATASOURCE_BASE_URL = "https://m1.apifoxmock.com/m1/2674295-2514766-default";

// 定义 API 方法
const tableDataQuery = (queryTableDataParams: TableDataPageQuery) => {
  return request<PageResult<IndicationTable>>({
    url: `${DATASOURCE_BASE_URL}/IndicationAPI`,
    method: "get",
    params: queryTableDataParams,
  });
};

const createMetric = (metricData: Partial<IndicationTable>) => {
  return request<IndicationTable>({
    url: `${DATASOURCE_BASE_URL}/createMetric`,
    method: "post",
    data: metricData,
  });
};

const deleteMetric = (metricId: number) => {
  return request<any>({
    url: `${DATASOURCE_BASE_URL}/deleteMetric/${metricId}`,
    method: "delete",
  });
};

const updateMetric = (metricId: number, metricData: Partial<IndicationTable>) => {
  return request<IndicationTable>({
    url: `${DATASOURCE_BASE_URL}/updateMetric/${metricId}`,
    method: "put",
    data: metricData,
  });
};

// 统一导出
export const IndicationAPI = {
  tableDataQuery,
  createMetric,
  deleteMetric,
  updateMetric,
};
